package com.jinzhi.common.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 验证工具类
 */
public class ValidUtils {

    /**
     * 手机号验证
     *
     * @param mobiles
     * @return
     */
    public static boolean isMobile(String mobiles) {
        Pattern p = Pattern.compile("^((13[0-9])|(15[0-9])|(16[0-9])|(18[0-9])|(14[0-9])|(17[0-9])|(19[0-9]))\\d{8}$");
        Matcher m = p.matcher(mobiles);
        return m.matches();
    }

    /**
     * 验证姓名
     *
     * @param name
     * @return
     */
    public static boolean ChineseNameTest(String name) {
        if (!name.matches("[\u4e00-\u9fa5]{2,4}")) {
            return false;
        }
        return true;
    }


    private static int[] w = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};

//    /**
//     * 验证身份证号码
//     *
//     * @param id
//     * @return
//     */
//    public static boolean isCard(String id) {
//        char[] c = id.toCharArray();
//        int sum = 0;
//        for (int i = 0; i < w.length; i++) {
//            sum += (c[i] - '0') * w[i];
//        }
//        char[] verifyCode = "10X98765432".toCharArray();
//        char ch = verifyCode[sum % 11];
//        return c[17] == ch;
//    }

    /**
     * 校验身份证
     @param idCard
     @return 校验通过返回true，否则返回false
      *     
     */

    public static boolean isIDCard(String idCard) {
        String REGEX_ID_CARD = "(^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$)";
        return Pattern.matches(REGEX_ID_CARD, idCard);
    }


    /**
     * 校验邮箱
     @param isEmail
     @return 校验通过返回true，否则返回false
      *     
     */
    public static boolean isEmail(String isEmail) {
        String REGEX_EMAIL = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
        return Pattern.matches(REGEX_EMAIL, isEmail);
    }


    /**
     * 校验图片格式
     @param isImage
     @return 校验通过返回true，否则返回false
      *     
     */
    public static boolean isImage(String isImage) {
        String REGEX_EMAIL = "(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$";
        return Pattern.matches(REGEX_EMAIL, isImage);
    }

}
